맨위로가기

프로그래머블 로직 컨트롤러

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

프로그래머블 로직 컨트롤러(PLC)는 1960년대 후반 미국 자동차 산업에서 릴레이 논리 시스템을 대체하기 위해 개발된 산업용 마이크로프로세서 기반 제어 장치이다. PLC는 릴레이, 캠 타이머 등 기존 하드웨어 배선 방식의 자동화 시스템의 단점을 보완하여, 산업 환경에 적합하도록 설계되었으며, 프로그래밍 가능한 메모리를 사용하여 제어 로직을 유연하게 변경할 수 있다. 초기에는 래더 로직을 사용하여 프로그래밍되었으며, 현재는 다양한 프로그래밍 언어를 지원한다. PLC는 중앙처리장치(CPU), 입출력부, 메모리, 전원 공급 장치 등으로 구성되며, 디지털 신호와 아날로그 신호를 모두 처리할 수 있다. 최근에는 안전 PLC, 소형 프로그래머블 로직 릴레이(PLR) 등 다양한 형태로 발전하고 있으며, 마이크로컨트롤러, 단일 보드 컴퓨터 등 다른 제어 시스템과 비교하여 특정 자동화 작업에 적합하게 사용된다.

더 읽어볼만한 페이지

  • 산업 컴퓨팅 - CAN 버스
    CAN 버스는 1983년 로버트 보쉬 유한회사에서 개발된 차량 내 통신 네트워크 프로토콜로, 자동차, 농업 장비 등 다양한 분야에서 전자 제어 장치 간의 통신을 가능하게 한다.
  • 산업 컴퓨팅 - 이더넷/IP
    이더넷/IP는 산업 자동화를 위한 산업용 네트워크 프로토콜로, UDP, TCP 기반 메시징과 유니캐스트, 멀티캐스트, 브로드캐스트 통신을 지원하며 ODVA에서 관리하는 CIP 네트워크 중 하나이다.
  • 컴퓨터 공학 - 전자공학
    전자공학은 다이오드와 트라이오드의 발명으로 시작되어 트랜지스터와 집적 회로를 거쳐 컴퓨터와 디지털 기술 발전을 이끌었으며, 현재는 다양한 세부 분야로 발전하고 있다.
  • 컴퓨터 공학 - 컴퓨터 과학
    컴퓨터 과학은 컴퓨터와 관련된 현상을 연구하는 학문으로, 계산 이론, 하드웨어 및 소프트웨어 설계, 문제 해결 등을 포괄하며, 수학, 공학 등 여러 분야와 융합하여 발전해 왔다.
  • 제어공학 - 센서
    센서는 물리량, 화학량, 생물학적 정보를 감지하여 유용한 신호로 변환하는 장치이며, 다양한 종류와 활용 분야를 가지며 첨단 기술 개발이 이루어지고 있다.
  • 제어공학 - 제어 시스템
    제어 시스템은 시스템의 출력을 원하는 값으로 유지하거나 목표를 달성하기 위해 동작을 조절하는 시스템으로, 다양한 제어 방식과 기법, 하드웨어를 통해 구현되어 소형 장치부터 대규모 산업 공정까지 광범위하게 사용된다.
프로그래머블 로직 컨트롤러
지도
기본 정보
종류산업용 컴퓨터
사용 분야자동화
제어
구조
입력 모듈센서
스위치
출력 모듈액추에이터
밸브
중앙 처리 장치 (CPU)연산
제어
메모리프로그램 저장
데이터 저장
전원 공급 장치전원 공급
프로그램
프로그래밍 언어래더 로직
명령어 목록
함수 블록 다이어그램
구조화 텍스트
순차 기능 차트
프로그래밍 방법컴퓨터를 이용한 프로그램 작성 및 다운로드
동작 방식주기적 스캔
입력 읽기
프로그램 실행
출력 갱신
특징
장점유연성
신뢰성
내구성
쉬운 유지보수
응용 분야제조 공정 자동화
로봇 제어
건물 자동화
발전소 제어
수처리 시설 제어
교통 제어
역사
개발 연도1960년대 후반
개발 배경복잡한 릴레이 제어 시스템 대체
개발자딕 몰리 (딕 몰리 어소시에이츠)
최초 상업용 PLCModicon 084
발전초기에는 릴레이 로직 에뮬레이션에서 고급 기능으로 발전
주요 개발 회사록웰 오토메이션
지멘스
미쓰비시 전기
슈나이더 일렉트릭
오므론
ABB
기타
통신Modbus
Profibus
Ethernet/IP
Profinet
안전 기능안전 PLC
안전 관련 제어
관련 표준IEC 61131-3

2. 역사

PLC는 1960년대 후반 미국 자동차 산업에서 기원하여 릴레이 논리 시스템을 대체하도록 설계되었다.[2] 이전에는 제조 공정의 제어 로직이 주로 릴레이, 캠 타이머, 드럼 시퀀서, 그리고 전용 폐루프 제어기로 구성되었다.[3]

이러한 구성 요소들의 하드웨어 배선 방식으로 인해 설계 엔지니어들이 자동화 프로세스를 변경하기 어려웠다. 변경에는 재배선과 문서의 신중한 업데이트가 필요했다. 문제 해결은 지루한 과정이었다.[4] 범용 컴퓨터가 사용 가능해지면서 산업 공정의 제어 로직에 곧 적용되었다. 이러한 초기 컴퓨터는 신뢰성이 낮았고[5] 전문 프로그래머와 온도, 청결도, 전력 품질과 같은 엄격한 작업 조건의 제어가 필요했다.[6]

PLC는 이전의 자동화 시스템에 비해 여러 가지 장점을 제공했다. 사무실용 시스템보다 산업 환경에 더 잘 적응하도록 설계되었고, 릴레이 시스템보다 신뢰성이 높고, 소형이며, 유지보수가 적게 필요했다. 추가 I/O 모듈로 쉽게 확장할 수 있었다. 릴레이 시스템은 재구성 시 지루하고 때로는 복잡한 하드웨어 변경이 필요했지만, PLC는 새로운 코드 또는 수정된 코드를 로드하여 재구성할 수 있다. 이를 통해 제조 공정 설계에 대한 반복 작업이 용이해졌습니다. 논리 및 스위칭 작업에 초점을 맞춘 간단한 프로그래밍 언어를 사용하여 범용 프로그래밍 언어를 사용하는 컴퓨터보다 사용자 친화적이었습니다. 초기 PLC는 래더 로직으로 프로그래밍되었는데, 이는 릴레이 논리의 개략도와 매우 유사했다. 또한 작동을 모니터링할 수 있었다.[7][8]

PLC는 기존 자동화 시스템에서 사용되던 수백, 수천 개의 릴레이와 캠타이머(기계식 타이머)를 대체하는 저렴한 대안으로 발명되었다. 하나의 PLC로 수천 개의 릴레이를 대체하도록 프로그래밍할 수 있다. 초기에는 주로 자동차 산업 공장에서 사용되어 생산 설비 제어반의 배선을 변경하는 대신 PLC 소프트웨어 변경으로 모델 변경에 대응할 수 있도록 했다.

PLC는 미국 자동차 산업의 필요성에서 개발되었다. PLC가 등장하기 이전, 자동차 제조에서의 제어 회로, 시퀀스 회로, 연동 회로는 계전기(릴레이), 타이머, 독립적인 폐루프 컨트롤러를 사용하여 구성되었다. 그러한 장치를 매년 모델 변경 시마다 변경 및 수정하는 것은 매우 시간과 노력이 많이 드는 과정이었다. 계전기 회로의 배선을 변경하는 것은 숙련된 기술자가 아니면 할 수 없었기 때문이다.

디지털 컴퓨터가 등장하면서, 범용의 프로그램 가능 장치로서 제조 공정 제어에도 응용하려는 움직임이 나타나기 시작했다. 초기 컴퓨터는 프로그래밍 전문가와, 온도, 주변 공기의 청결도, 전력 품질 등의 면에서 엄격한 환경 관리를 필요로 했다. 산업용 제어 컴퓨터에는 몇 가지 속성이 요구된다. 우선, 제조 현장의 환경에서 작동 가능해야 한다. 또한, 쉽게 확장 가능한 방법으로 이산적인 입출력을 지원해야 한다. 수년간의 훈련을 필요로 한다면 사용할 수 없다. 작동 상황을 모니터링할 수 있어야 한다. 제어하는 데 충분한 반응 속도도 요구되지만, 공정의 성질에 따라 필요한 반응 속도는 다르다.[49]

1968년, 제너럴 모터스(General Motors)의 자동 변속기 제조 부문(Hydramatic)은 계전기 시스템을 전자적으로 대체하기 위한 요구 사양을 작성했다. 계약을 체결한 곳은 매사추세츠주 베드퍼드(Bedford)의 Bedford Associates社였다. 최초의 PLC는 Bedford Associates社의 84번째 프로젝트였기 때문에 "084"라는 이름이 붙여졌다.[50] Bedford Associates社는 PLC의 개발, 제조, 판매, 유지보수를 수행하는 Modicon社를 설립했다. 이 프로젝트에 참여한 사람들 중에는 "PLC의 아버지"라고 불리는 디크 모를리/Dick Morley영어도 있었다.[51] Modicon社는 개발 제품을 “Modicon 084”로 출시했는데, 신호의 흐름을 패널에 의해 파악할 수 있도록 고안되었고, 신호의 역추적이 가능하다는 획기적인 제품이었다. 또한 운전 중에도 일부 코일을 강제 ON, OFF 할 수 있는 것도 특징이었다.

내부는 16비트의 미니컴퓨터이며, 인터프리터에 의해 온라인으로 명령을 실행하는 것이었다. 타이머, 카운터 프린터가 장착되어 있었고, 전화 회선을 통한 고장 진단이 가능한 등 당시로서는 완성도가 높은 제품이었다.

Modicon社는 1977년, Gould Electronics에 매각되었고, 이후 독일의 AEG가 인수했다. 그 후 프랑스의 슈나이더 일렉트릭이 소유주가 되어 현재에 이르고 있다.

최초의 모델 084는 매사추세츠주 노스앤도버에 있는 Modicon 본사에 전시되어 있다. 동일 기계는 20년 가까이 사용된 후 퇴역한 후 GM로부터 기증받은 것이다.

앞으로 PLC의 진화는 산업계에 혁명적인 변화를 가져올 가능성을 품고 있다. IoT, AI, 클라우드 컴퓨팅, 엣지 컴퓨팅 등의 첨단 기술과의 융합을 통해 PLC는 단순한 제어 장치에서 산업의 디지털화와 스마트화를 견인하는 핵심 기술로 진화하고 있다.[52]

2. 1. 초기 개발

1960년대 후반, 미국 자동차 산업은 릴레이 논리 시스템을 대체하기 위해 프로그래머블 로직 컨트롤러(PLC)를 도입했다.[2] 이전에는 제조 공정의 제어 로직이 주로 릴레이, 캠 타이머, 드럼 시퀀서, 전용 폐루프 제어기로 구성되었다.[3] 이러한 하드웨어 배선 방식은 자동화 프로세스 변경을 어렵게 만들었고, 문제 해결 또한 복잡했다.[4]

1968년, 제너럴 모터스(GM)의 자동변속기 제조 부문(Hydramatic)은 릴레이 시스템을 전자적으로 대체하기 위한 제안 요청서를 발행했다.[50] 매사추세츠주 베드퍼드의 Bedford Associates가 이 제안을 수주하여 "084"라는 최초의 PLC를 개발했다. 이는 Bedford Associates의 84번째 프로젝트였기 때문에 붙여진 이름이다.[50]

Bedford Associates는 PLC 개발, 제조, 판매, 유지보수를 위해 Modicon이라는 회사를 설립했다. 이 프로젝트에는 "PLC의 아버지"라 불리는 디크 모를리/Dick Morley영어가 참여했다.[51] Modicon 084는 신호 흐름을 패널로 파악하고 역추적이 가능하며, 운전 중에도 코일 강제 ON/OFF가 가능한 혁신적인 제품이었다. 내부는 16비트 미니컴퓨터였으며, 타이머, 카운터 프린터, 전화 회선을 통한 고장 진단 기능을 갖춘 완성도 높은 제품이었다.

Modicon은 1977년 Gould Electronics에 인수되었고, 이후 AEG를 거쳐 슈나이더 일렉트릭 소유가 되었다. 최초 모델 084는 매사추세츠주 노스앤도버의 Modicon 본사에 전시되어 있으며, GM에서 기증받은 것이다.

2. 2. 모디콘(Modicon)

1968년, 제너럴 모터스(General Motors)의 자동변속기 부서인 GM Hydramatic은 하드와이어 릴레이 시스템을 대체할 전자 장치에 대한 제안 요청을 발표했고, 매사추세츠주 베드퍼드의 베드퍼드 어소시에이츠(Bedford Associates)가 제안하여 채택되었다.[9][10] 베드퍼드 어소시에이츠는 이 새로운 제품을 개발, 제조, 판매 및 서비스하기 위한 회사인 '''모디콘(Modicon)'''(모듈형 디지털 컨트롤러(modular digital controller)의 약자)을 설립했다. 이 프로젝트에는 "PLC의 아버지"로 불리는 딕 모리(Dick Morley)가 참여했다.[11][51]

1969년에 제작된 최초의 PLC는 베드퍼드 어소시에이츠의 84번째 프로젝트였기 때문에 '084'로 명명되었다.[9][10] 모디콘은 984가 등장한 이후까지 제품 라인의 끝에 84라는 명칭을 사용했다.[13] 최초로 제작된 084 모델 중 하나는 매사추세츠주 노스앤도버에 있는 슈나이더 일렉트릭 시설에 전시되어 있으며, 거의 20년 동안 중단 없이 운영된 후 GM에 의해 기증되었다.[13]

모디콘 브랜드는 1977년 굴드 일렉트로닉스(Gould Electronics)에 매각되었고, 이후 독일의 AEG를 거쳐 현재 소유주인 슈나이더 일렉트릭에 인수되었다.[10] 모디콘은 자사의 PLC와 함께 사용되는 데이터 통신 프로토콜인 모드버스(Modbus)를 개발했으며, 이는 현재 많은 산업용 전기 장치를 연결하는 데 사용되는 표준 오픈 프로토콜이 되었다.[12]

2. 3. 앨런-브래들리(Allen-Bradley)

오도 요셉 스트루거(Odo Josef Struger)는 앨런-브래들리(Allen-Bradley) 프로그래머블 로직 컨트롤러(PLC)의 발명에 참여했으며,[14][15][16] PLC라는 약어를 만든 사람으로, "프로그래머블 로직 컨트롤러의 아버지"로도 알려져 있다.[11][14] 앨런-브래들리(현재 록웰 오토메이션(Rockwell Automation)의 브랜드)는 그의 재임 기간 동안 미국의 주요 PLC 제조업체가 되었다.[17] 스트루거는 IEC 61131-3 PLC 프로그래밍 언어 표준 개발에서 주도적인 역할을 수행했다.[11]

2. 4. 대한민국 PLC 산업 발전

3. 구성 요소 및 작동 원리

프로그래머블 로직 컨트롤러(PLC)는 프로그램 명령어와 다양한 기능을 저장하는 프로그래밍 가능한 메모리를 사용하는 산업용 마이크로프로세서 기반 컨트롤러이다.[21] PLC는 다음과 같은 구성 요소로 이루어져 있다.


  • 입력을 해석하고, 메모리에 저장된 제어 프로그램을 실행하며, 출력 신호를 보내는 프로세서 장치(CPU)
  • AC 전압을 DC 전압으로 변환하는 전원 공급 장치
  • 입력 데이터와 프로세서가 실행할 프로그램을 저장하는 메모리 장치
  • 컨트롤러가 외부 장치로부터 데이터를 수신하고 외부 장치에 데이터를 전송하는 입출력 인터페이스
  • 원격 PLC로부터 통신 네트워크를 통해 데이터를 수신하고 전송하는 통신 인터페이스[22]


PLC는 생성된 프로그램을 개발하고 나중에 컨트롤러의 메모리에 다운로드하는 데 사용되는 프로그래밍 장치가 필요하다.[22]

최신 PLC에는 일반적으로 실시간 운영 체제(Real-time operating system), 예를 들어 OS-9 또는 VxWorks가 포함되어 있다.[39]

== 입출력부 ==

입출력부는 외부기기와의 접속을 통해 프로그래머블 로직 컨트롤러(PLC) 시스템을 구성하는 중요한 요소이다. 입력부는 푸쉬버튼스위치, 리밋스위치, 센서 등으로부터 신호를 받아들이고, 출력부는 모터, 공기 실린더, 유압 실린더, 진동판, 릴레이, 솔레노이드 등을 제어하는 신호를 내보낸다.[44]

입출력 접속은 시스템 안정을 위해 내부 동작 전압(주로 5V)와 다른 전압을 사용하며, 다양한 외부 기기와의 호환성을 위해 다음과 같은 사항을 고려한다.

  • 외부 기기와의 전기적 규격을 일치시킨다.
  • 외부 기기 접속의 용이성을 위한 물리적 구조를 갖는다.
  • 입출력 상태 확인을 위한 LED를 부착한다.
  • 외부 기기와 내부 CPU 간 영향 최소화를 위해 포토커플러를 사용한다.


PLC는 풍부한 입출력 기능을 제공하며, 경우에 따라 머신 비전도 사용한다.[44] 대규모 제어를 위해 PLC 네트워크를 통해 I/O 모듈을 연결하여 확장할 수 있으며, 전자 블록과 같이 모듈 증설이 가능하다.

과거에는 PLC 본체와 베이스 유닛 구성에 채널 유닛을 증설하는 형태였으나, 최근에는 베이스 유닛이 없는 형태가 일반적이다. 이는 병렬 I/O에서 직렬 I/O로의 변화에 따른 것으로, 물리적 I/O 주소 제약 없이 I/O 인터페이스 접근 속도 등의 제한 내에서 무한대로 확장 가능한 기반이 확립되었다. 제조사에 따라 다기능 입출력 유닛의 경우, 래더용 소프트웨어에서 입출력 영역을 재정의해야 PLC가 인식하는 경우가 있다.

== 중앙처리장치(CPU) ==

프로그래머블 로직 컨트롤러(PLC)는 소형 컴퓨터의 일종으로, 중앙에는 마이크로프로세서가 사용된다. PLC는 계전기 회로를 원형으로 하는 '''상태 머신'''을 동작 모델로 하며, 프로그램은 계전기 회로를 기호화한 프로그래밍 언어가 사용된다. 이 프로그램은 래더 다이어그램이라고 불리는 그림으로 변환될 수 있다. 일반적인 연산 장치와 마찬가지로 인덱스 레지스터 등의 간접 지정도 용이하게 할 수 있다. 연산 결과는 내부 메모리 영역에 저장되며, 제조업체에 따라 초기 설정이 전원 손실 후 휘발성 또는 비휘발성으로 설정될 수 있다. PLC 프로그램은 전기 회로를 기호화한 것이며, 높은 안전성과 안정성이 요구된다. 최근에는 배터리를 사용하지 않는 플래시 메모리가 주로 사용되지만, 이전에는 배터리 백업된 메모리나 버블 메모리가 사용되기도 했다.

3. 1. 입출력부

입출력부는 외부기기와의 접속을 통해 프로그래머블 로직 컨트롤러(PLC) 시스템을 구성하는 중요한 요소이다. 입력부는 푸쉬버튼스위치, 리밋스위치, 센서 등으로부터 신호를 받아들이고, 출력부는 모터, 공기 실린더, 유압 실린더, 진동판, 릴레이, 솔레노이드 등을 제어하는 신호를 내보낸다.[44]

입출력 접속은 시스템 안정을 위해 내부 동작 전압(주로 5V)와 다른 전압을 사용하며, 다양한 외부 기기와의 호환성을 위해 다음과 같은 사항을 고려한다.

  • 외부 기기와의 전기적 규격을 일치시킨다.
  • 외부 기기 접속의 용이성을 위한 물리적 구조를 갖는다.
  • 입출력 상태 확인을 위한 LED를 부착한다.
  • 외부 기기와 내부 CPU 간 영향 최소화를 위해 포토커플러를 사용한다.


PLC는 풍부한 입출력 기능을 제공하며, 경우에 따라 머신 비전도 사용한다.[44] 대규모 제어를 위해 PLC 네트워크를 통해 I/O 모듈을 연결하여 확장할 수 있으며, 전자 블록과 같이 모듈 증설이 가능하다.

과거에는 PLC 본체와 베이스 유닛 구성에 채널 유닛을 증설하는 형태였으나, 최근에는 베이스 유닛이 없는 형태가 일반적이다. 이는 병렬 I/O에서 직렬 I/O로의 변화에 따른 것으로, 물리적 I/O 주소 제약 없이 I/O 인터페이스 접근 속도 등의 제한 내에서 무한대로 확장 가능한 기반이 확립되었다. 제조사에 따라 다기능 입출력 유닛의 경우, 래더용 소프트웨어에서 입출력 영역을 재정의해야 PLC가 인식하는 경우가 있다.

3. 2. 중앙처리장치(CPU)

프로그래머블 로직 컨트롤러(PLC)는 소형 컴퓨터의 일종으로, 중앙에는 마이크로프로세서가 사용된다. PLC는 계전기 회로를 원형으로 하는 '''상태 머신'''을 동작 모델로 하며, 프로그램은 계전기 회로를 기호화한 프로그래밍 언어가 사용된다. 이 프로그램은 래더 다이어그램이라고 불리는 그림으로 변환될 수 있다. 일반적인 연산 장치와 마찬가지로 인덱스 레지스터 등의 간접 지정도 용이하게 할 수 있다. 연산 결과는 내부 메모리 영역에 저장되며, 제조업체에 따라 초기 설정이 전원 손실 후 휘발성 또는 비휘발성으로 설정될 수 있다. PLC 프로그램은 전기 회로를 기호화한 것이며, 높은 안전성과 안정성이 요구된다. 최근에는 배터리를 사용하지 않는 플래시 메모리가 주로 사용되지만, 이전에는 배터리 백업된 메모리나 버블 메모리가 사용되기도 했다.

3. 3. 메모리

3. 4. 전원 공급 장치

3. 5. 스위치 종류

스위치 요소는 물리적 입출력 단자일 수도 있고, 내부 메모리에 의존하는 '상태'일 수도 있다. 물리적 스위치 입력이나 디지털 출력일 수도 있고, 내부에 어떤 상태를 저장하는 수단이기도 하다. 제품마다 물리적 입출력인지 내부 메모리 상태인지는 주로 시작 알파벳에 따라 결정된다.

스위치에는 다음과 같은 종류가 있다.

  • a-접점 스위치: 평상시에 떨어져 있다가 조작하면 연결된다.
  • b-접점 스위치: 평상시에 붙어 있다가 조작하면 떨어진다.


a-접점 스위치와 출력 코일을 사용하는 예시는 다음과 같다.

P00

|------[ ]------------------------------(P10)---|

이 예시에서 P00 조작 전에는 P10이 'OFF' 상태였다가, P00을 조작하면 연결되어 P10이 'ON(SET)' 된다.

b-접점 스위치와 출력 코일을 사용하는 예시는 다음과 같다.

P00

|------[/]------------------------------(P10)---|

이 예시에서 P00 조작 전에는 P10이 'ON' 상태였다가, P00을 조작하면 연결이 끊어져 P10은 'OFF(reset)' 된다.

3. 6. 기능 요소

PLC는 열악한 환경(먼지, 습기, 고온, 저온 등)에서도 잘 작동하도록 설계되었으며, 센서 및 액추에이터 연결을 위한 광범위한 입출력(I/O)을 제공한다.[33] PLC 입력에는 한계 스위치, 프로세스 센서(온도 및 압력 등)의 아날로그 변수, 위치 지정 또는 머신 비전 시스템의 데이터 등이 포함될 수 있다.[33] PLC 출력에는 표시등, 사이렌, 전동기, 공압 또는 유압 실린더, 전자 릴레이, 솔레노이드, 아날로그 출력 등이 포함될 수 있다.[33]

PLC의 기능은 순차 릴레이 제어, 모션 제어, 공정 제어, 분산 제어 시스템, 네트워킹을 포함하도록 발전해왔다. 일부 최신 PLC는 데이터 처리, 저장, 처리 능력 및 통신 기능이 데스크톱 컴퓨터와 거의 동등하다.

PLC는 전자기계식 릴레이의 기능을 에뮬레이트하며, 이산 입력에는 고유한 주소가 지정되어 PLC 명령어를 통해 입력 상태를 확인할 수 있다. 릴레이 접점이 논리 AND 연산을 수행하는 것처럼, 일련의 "켜져 있는지 검사" 명령어는 모든 입력 비트가 켜져 있으면 출력 저장 비트를 활성화한다. 병렬 명령어 세트는 논리 OR 연산을 수행한다.

PLC의 더 고급 명령어는 기능 블록으로 구현될 수 있으며, 기능 블록은 논리 입력에 의해 활성화될 때 특정 연산을 수행하고, 완료 또는 오류를 신호하는 출력을 생성하며, 이산 논리에 해당하지 않을 수 있는 변수를 내부적으로 조작한다.

PLC에는 타이머(ON 타이머, OFF 타이머), 적산 타이머, 카운터(업 카운터, 다운 카운터, 업다운 카운터), 리트리거블, 모노 스테이블 기능이 포함될수 있다. 또한, 단일 변수 범용 산업 피드백 루프인 PID 제어기(비례, 적분, 미분 루프)가 포함될 수 있다. PID 루프는 산업 프로세스 제어에서 일반적인 방식이며, 수영장의 pH 값 제어에도 사용된다.

랙에 설치된 PLC 시스템(왼쪽에서 오른쪽: 전원 공급 장치(PSU), CPU, 인터페이스 모듈(IM), 통신 프로세서(CP))


PLC(중앙의 회색 요소)가 있는 제어반. 이 장치는 왼쪽에서 오른쪽으로 전원 공급 장치, 컨트롤러, 입출력용 릴레이 유닛 등의 개별 요소로 구성됨

3. 7. 스캔 타임

PLC는 프로그램 스캔 주기를 반복적으로 실행하며 작동한다. 가장 단순한 스캔 주기는 입력 읽기, 프로그램 실행, 출력 쓰기의 3단계로 구성된다.[34]

프로세서가 모든 명령어를 평가하고 모든 출력의 상태를 업데이트하는 데는 일반적으로 수십 밀리초가 걸린다.[35] 물리적인 입력점의 상태는 프로세서가 접근 가능한 메모리 영역인 "I/O 이미지 테이블"에 복사되며, 프로그램은 이를 입력으로 하여 처음부터 끝까지 동작한다. 프로그램이 작고 프로세서가 고속이라면 이 스캔에 걸리는 시간은 수 밀리초로 끝나지만, 큰 프로그램에서는 더 많은 시간이 걸린다(예를 들어 100밀리초). 스캔 시간이 너무 길면 공정 상황에 대한 PLC의 반응이 느려져 사용할 수 없게 된다.[45]

PLC가 더욱 발전함에 따라 래더 실행 순서를 변경하는 방법이 개발되었고, 서브루틴이 구현되었다.[36][46] 프로그래밍 단순화 및 스캔 시간 단축에 기여하며, 예를 들어 제어 대상 기계의 설정에만 사용되는 프로그램 부분은 일반 운영 시의 스캔에는 포함되지 않도록 분리할 수 있다.

스캔 시간이 너무 길어 예측 가능한 성능을 허용하지 않는 경우 특수 목적 I/O 모듈을 사용할 수 있다. 예를들어, 정밀 타이밍 모듈 또는 샤프트 엔코더와 함께 사용할 카운터 모듈을 사용하여 펄스 누적이 수행되므로 계산된 값을 해석하여 기계를 제어할 수 있다.[37] 시스템에 원격 I/O(예: I/O 모듈이 있는 외부 랙)가 포함되어 있는 경우 PLC 시스템의 응답 시간에 추가적인 불확실성이 발생한다.[34]

4. 프로그래밍

래더 다이어그램 로직 예시


프로그래머블 로직 컨트롤러(PLC)는 프로그래밍 배경이 없는 엔지니어도 사용할 수 있도록 설계되었다. 이러한 이유로, 래더 다이어그램(LD, LAD)이라는 그래픽 프로그래밍 언어가 처음 개발되었다. 이는 전자기계식 릴레이로 구축된 시스템의 회로도와 유사하며 많은 제조업체에서 채택되었고, 나중에 IEC 61131-3 제어 시스템 프로그래밍 표준에서 표준화되었다.[26] 단순성 덕분에 여전히 널리 사용되고 있다.[26]

일반적인 PLC는 소프트웨어로 래더 논리를 사용한다. 래더 논리는 계전기 회로를 기호화한 것으로, “래더 다이어그램(Ladder Diagram)”이라는 사다리 모양의 그림으로 표현한다. 전기 기술자는 회로도 문제를 푸는 것처럼 래더 논리를 사용하여 PLC 프로그램을 도면으로 처리할 수 있다. 이 방법이 선택된 이유는 계전기 회로를 시뮬레이션함으로써 보급을 촉진하기 위한 것이었다.

, 대부분의 PLC 시스템은 IEC 61131-3 표준을 준수하며, 2가지 텍스트 프로그래밍 언어(구조적 텍스트(ST; 파스칼과 유사) 및 명령어 목록(IL))와 3가지 그래픽 언어(래더 다이어그램, 기능 블록 다이어그램, 순차 기능 차트)를 정의한다.[26][27] 명령어 목록(IL)은 표준의 세 번째 판에서 더 이상 사용되지 않는다.[28]

최신 PLC는 릴레이에서 파생된 래더 다이어그램부터 특별히 적응된 베이직 및 C 방언과 같은 프로그래밍 언어에 이르기까지 다양한 방법으로 프로그래밍할 수 있다.[29]

PLC 프로그래밍의 기본 개념은 모든 제조업체에서 공통적이지만, I/O 어드레싱, 메모리 구성 및 명령어 세트의 차이로 인해 PLC 프로그램은 서로 다른 제조업체 간에 완벽하게 호환되지 않는다. 동일한 제조업체의 동일한 제품 라인 내에서도 서로 다른 모델이 직접 호환되지 않을 수 있다.[30]

현재는 일반 컴퓨터와 차이가 거의 없는 PLC도 사용된다. IEC 61131-3 표준 규격에 따르면, PLC를 구조화된 프로그래밍 언어(ST 언어)로 프로그램할 수도 있으며, 논리 기본 연산으로 프로그램할 수도 있다. 시퀀셜 펑션 차트(SFC 언어)라고 불리는 그래픽 프로그래밍 표기법을 사용할 수 있는 프로그래머블 컨트롤러도 있다.

프로그램 목적에 따라 래더로 작성할 수 없는 확장 명령어가 주가 되는 경우도 있지만, 규모의 크고 작음에 관계없이 계장계(위치 제어, 속도 제어 포함)나 문자 등을 처리하지 않는 계전기 논리만으로 제어하는 경우에는 래더 다이어그램만으로도 프로그램해도 충분히 비용 및 공간적 이점이 있다.

PLC 프로그램은 퍼스널 컴퓨터의 특수 애플리케이션을 사용하여 작성한 후 PLC에 다운로드한다. 간단한 프로그램은 현장에서 작성하는 경우도 많다. 예전에는 프로그램 전용 하드웨어를 사용했지만, 노트북 등의 발달로 거의 사용되지 않는다. 프로그램은 PLC마다 배터리 백업된 RAM이나 비휘발성 메모리(플래시 메모리)에 저장된다. 하나의 PLC로 수천 개의 릴레이를 대체하도록 프로그램할 수도 있다.[47]

초기 PLC는 전기 기술자가 사용하도록 설계되었고, 그들은 업무를 통해 PLC 프로그래밍을 배웠다. 전용 프로그래밍 패널이나 단말기가 있었고, PLC 프로그램의 여러 논리 요소에 대응하는 기능 키가 나열되어 있었다.[50] 그 후 PLC는 릴레이 회로 배선에 대응하도록 되어 있는 래더 논리로 프로그램되게 되었다. 최근 PLC는 래더 논리뿐만 아니라 BASIC이나 C언어를 사용하여 프로그램할 수도 있다. 또한, 상태 천이 다이어그램을 기반으로 PLC를 프로그래밍하는 방식도 있다. 하지만, 고급 언어로 복잡한 프로그램을 작성할 때는 라이브러리(서브루틴)의 내용을 이해하지 못하면, 원래 포함해야 할 인수 등의 정의나 다중화의 한계 수 등의 오류를 인식하지 못하고, 라이브러리에서 돌아오는 결과를 이용하는 분기 프로세스에서 심각한 오류를 일으킬 수 있다.(일반적으로 컴파일 시에 오류가 발생하여 작성자에게 주의를 환기하지만, 스택 포인터 등의 내용은 프로그램 작성 시 의식하지 않는 경우가 많으므로 특히 주의가 필요하다.)

최근에는 국제 표준 규격 IEC 61131-3이 일반적이다. 이에 따르면 5가지 프로그래밍 언어가 정의되어 있다. FBD(펑션 블록 다이어그램)·LD(래더 다이어그램)·ST(구조적 텍스트, 파스칼형 언어)·IL(명령어 리스트, 어셈블리어풍) 그리고 SFC(Sequential Function Chart; 시퀀셜 펑션 차트)이다.[48] 이러한 기법은 처리의 논리 구성을 명확히 하는 것이다.[47]

4. 1. 래더 다이어그램 (LD)

래더 다이어그램(Ladder Diagram, LD)은 릴레이 로직을 기반으로 한 그래픽 프로그래밍 언어로, 사다리 모양으로 표현된다. 니모닉은 래더 다이어그램을 문자로 표현한 것이다. 래더 다이어그램은 AND, OR, NOT 등의 논리 연산을 사용하여 프로그램을 작성한다.

다음은 래더 다이어그램의 예시이다.

```

  • -----[ ]--------------[ ]----------------( )

보안키잠금 문손잡이 문열림

```

기능 (논리) : 문열림 <= 보안키잠금 AND 문손잡이

```

  • -|-------[ ]--------+-----------------( )

| 외부열림 | 열림

| |

|-------[ ]--------|

내부열림

```

기능 (논리) : 열림 <= 외부열림 OR 내부열림

래더 다이어그램은 자기 유지 회로, 복합 논리 등 다양한 회로를 표현할 수 있다. 다음은 자기 유지 회로의 예시이다.

```

  • -+----[ ]---+-----------------( )

| 시작 | 출력

| |

+----[ ]---+

출력

```

시작 스위치가 눌렸다 떨어져도 '시작'과 '출력'이 논리 OR로 연결되어 '출력' 상태가 계속 유지된다.

다음은 좀 더 복잡한 회로의 예시이다.

```

1 +----[ ]-----+-----[/]------------( )

| 시작 | 멈춤 동작

| |

+-----[ ]----+

| 동작

|

2 |-----[ ]------------------------( )

| 동작 모터

```

기능 (논리) :

1 : 동작 <= ( 시작 OR 출력) AND ( NOT 멈춤)

2 : 모터 <= 동작

래더 다이어그램은 전기 기술자가 회로도 문제를 푸는 것처럼 PLC 프로그램을 도면으로 처리할 수 있도록 돕는다. IEC 61131-3 표준에 따라, PLC를 구조화된 프로그래밍 언어(ST 언어)나 시퀀셜 펑션 차트(SFC 언어)로 프로그래밍할 수도 있다.

4. 2. 기타 프로그래밍 언어

IEC 61131-3 표준에 따라 PLC는 구조적 텍스트(ST), 명령어 목록(IL), 순차 기능 차트(SFC), 기능 블록 다이어그램(FBD) 등 다양한 프로그래밍 언어를 사용하여 프로그래밍할 수 있다.[26][27][48] 이 기법들은 처리의 논리 구성을 명확히 한다.[47] 명령어 목록(IL)은 표준의 세 번째 판에서 더 이상 사용되지 않는다.[28]

최근 PLC는 C와 같은 고급 프로그래밍 언어로도 프로그래밍할 수 있다.[29] 다만, 고급 언어로 복잡한 프로그램을 작성할 때는 라이브러리(서브루틴)의 내용을 이해하지 못하면 심각한 오류를 일으킬 수 있으므로 주의가 필요하다.

4. 3. 프로그래밍 장치

PLC 프로그램은 일반적으로 개인용 컴퓨터(PC)의 전용 소프트웨어를 사용하여 작성되며, 작성된 프로그램은 직접 또는 네트워크를 통해 PLC에 다운로드된다.[31] 프로그램은 비휘발성 플래시 메모리 또는 배터리 백업 RAM에 저장된다.[47]

초기 PLC는 자기 코어 메모리를 사용했으며,[20] 전용 기능 키가 있는 독점 프로그래밍 패널이나 특수 목적 프로그래밍 단말기를 사용하여 프로그래밍되었다.[9] 프로그램은 카세트 테이프 카트리지에 저장되었고, 메모리 용량 부족으로 인해 인쇄 및 문서화 기능은 최소화되었다.

최근에는 국제 표준 규격 IEC 61131-3이 일반적이며, 이에 따라 FBD(펑션 블록 다이어그램), LD(래더 다이어그램), ST(구조적 텍스트, 파스칼형 언어), IL(명령어 리스트, 어셈블리어풍) 그리고 SFC(Sequential Function Chart; 시퀀셜 펑션 차트)의 5가지 프로그래밍 언어가 정의되어 있다.[48]

4. 4. 시뮬레이션

PLC 프로그래밍 소프트웨어는 시뮬레이션 기능을 제공하여, 실제 PLC 연결 없이도 프로그램 동작을 테스트하고 디버깅할 수 있다.[31][32] 시뮬레이션을 통해 프로그램 오류를 조기에 발견하고 수정하여, 시스템 개발 시간과 비용을 절감할 수 있다. 잘못 프로그래밍된 PLC는 생산성 손실뿐만 아니라 장비의 위험한 상태를 초래할 수 있다. 시뮬레이션에서 프로젝트를 테스트하면 품질과 장비 관련 안전 수준이 높아지며, 자동화 제어 애플리케이션 설치 및 시운전 중 다양한 시나리오를 미리 시험하여 가동 중지 시간을 줄일 수 있다.[31][32]

5. 통신

PLC는 USB, 이더넷, RS-232, RS-485, RS-422와 같은 내장 포트를 사용하여 외부 장치(센서, 액추에이터) 및 시스템(프로그래밍 소프트웨어, SCADA, 사용자 인터페이스)과 통신한다. 통신은 Modbus 또는 이더넷/IP와 같은 다양한 산업용 네트워크 프로토콜을 통해 이루어지며, 이러한 프로토콜 중 상당수는 공급업체별로 다르다.

대규모 I/O 시스템에 사용되는 PLC는 프로세서 간에 피어 투 피어(P2P) 통신을 수행할 수 있다. 이를 통해 복잡한 프로세스의 개별 부분이 개별적으로 제어될 수 있으며, 동시에 하위 시스템이 통신 링크를 통해 조정될 수 있다. 이러한 통신 링크는 키패드 또는 PC 유형의 워크스테이션과 같은 사용자 인터페이스 장치에도 자주 사용된다.

컴퓨터 프로그램과 PLC 장치와의 업로드 및 다운로드를 위해 일반적으로 RS-232 규격이 적용된다. 이전에는 일부 제조업체에서 프로세서에 네트워크 연결이 내장되어 있지 않은 추가 기능으로 전용 통신 모듈을 제공하기도 했다.

5. 1. 통신 인터페이스

PLC는 USB, 이더넷, RS-232, RS-485, RS-422와 같은 내장 포트를 사용하여 외부 장치(센서, 액추에이터) 및 시스템(프로그래밍 소프트웨어, SCADA, 사용자 인터페이스)과 통신한다. 통신은 Modbus 또는 이더넷/IP와 같은 다양한 산업용 네트워크 프로토콜을 통해 이루어지며, 이러한 프로토콜 중 상당수는 공급업체별로 다르다.

대규모 I/O 시스템에 사용되는 PLC는 프로세서 간에 피어 투 피어(P2P) 통신을 수행할 수 있다. 이를 통해 복잡한 프로세스의 개별 부분이 개별적으로 제어될 수 있으며, 동시에 하위 시스템이 통신 링크를 통해 조정될 수 있다. 이러한 통신 링크는 키패드 또는 PC 유형의 워크스테이션과 같은 사용자 인터페이스 장치에도 자주 사용된다.

컴퓨터 프로그램과 PLC 장치와의 업로드 및 다운로드를 위해 일반적으로 RS-232 규격이 적용된다. 이전에는 일부 제조업체에서 프로세서에 네트워크 연결이 내장되어 있지 않은 추가 기능으로 전용 통신 모듈을 제공하기도 했다.

5. 2. 통신 프로토콜

PLC는 USB, 이더넷, RS-232, RS-485, RS-422와 같은 내장 포트를 사용하여 외부 장치(센서, 액추에이터) 및 시스템(프로그래밍 소프트웨어, SCADA, HMI)과 통신한다. 통신은 Modbus 또는 이더넷/IP와 같은 다양한 산업용 네트워크 프로토콜을 통해 이루어진다. 이러한 프로토콜 중 상당수는 공급업체별로 다르다.

대규모 I/O 시스템에 사용되는 PLC는 프로세서 간에 피어 투 피어(P2P) 통신을 수행할 수 있다. 이를 통해 복잡한 프로세스의 개별 부분이 개별적으로 제어될 수 있으며, 동시에 하위 시스템이 통신 링크를 통해 조정될 수 있다. 이러한 통신 링크는 키패드 또는 PC 유형의 워크스테이션과 같은 사용자 인터페이스 장치에도 자주 사용된다.

이전에는 일부 제조업체에서 프로세서에 네트워크 연결이 내장되어 있지 않은 추가 기능으로 전용 통신 모듈을 제공했다. 컴퓨터 프로그램과 PLC 장치와의 업로드 및 다운로드를 위해 일반적으로 RS-232 규격이 적용된다.

6. 사용자 인터페이스

PLC는 구성, 알람 보고, 또는 일상적인 제어를 위해 사람과 상호 작용해야 할 수 있다. 이러한 목적으로 인간-기계 인터페이스(HMI)가 사용된다. HMI는 인간-기계 인터페이스(MMI) 및 그래픽 사용자 인터페이스(GUI)라고도 한다. 간단한 시스템은 버튼과 표시등을 사용하여 사용자와 상호 작용할 수 있다. 텍스트 디스플레이와 그래픽 터치스크린도 사용할 수 있다. 터치스크린도 자주 사용된다. 더 복잡한 시스템은 통신 인터페이스를 통해 연결된 PLC를 사용하여 컴퓨터에 설치된 프로그래밍 및 모니터링 소프트웨어를 사용한다. 최신 PLC에서는 네트워크를 통해 다른 시스템(예를 들어, SCADA 시스템이나 웹 브라우저가 작동하는 컴퓨터)과 상호 작용할 수 있다.

PLC 사용자 인터페이스가 있는 제어반(열산화장치 제어용)

7. PLC의 형태

PLC 시스템의 기계적 설계에는 네 가지 유형이 있다. '단일 박스형'(또는 '브릭형'이라고도 함)은 모든 장치와 인터페이스를 하나의 소형 케이스에 담은 소형 프로그래밍 가능 제어기이지만, 일반적으로 입력 및 출력을 위한 추가 확장 모듈을 사용할 수 있다.

입력 8개, 출력 4개의 소형 PLC


두 번째 설계 유형인 '모듈형' PLC는 전원 공급 장치, 프로세서, 입출력 모듈 선택 및 통신 인터페이스와 같은 다양한 기능의 모듈을 위한 공간을 제공하는 섀시(또는 '랙'이라고도 함)를 가지고 있으며, 이는 특정 애플리케이션에 맞게 사용자 지정할 수 있다.[23]

EtherNet/IP 모듈, 디지털 및 아날로그 입출력을 포함하고 일부 슬롯이 비어 있는 모듈형 PLC
EtherNet/IP 모듈, 디스크릿 및 아날로그 입출력을 포함하고 일부 슬롯이 비어 있는 모듈형 PLC


여러 개의 랙을 단일 프로세서로 관리할 수 있으며 수천 개의 입출력을 가질 수 있다. 랙을 프로세서에서 분산시켜 대규모 플랜트의 배선 비용을 줄이기 위해 특수 고속 직렬 입출력 링크 또는 유사한 통신 방법을 사용한다. 세 번째 설계 유형인 '스택형 또는 랙 장착형' PLC는 단일 박스형과 모듈형 PLC의 기능을 결합한 것이다. CPU, 전원 공급 장치, 입출력 인터페이스 및 기타 구성 요소는 케이블을 통해 연결하고 서로 쌓을 수 있는 별도의 모듈이다. 이러한 구조는 유연한 구성을 허용하고 크기를 소형으로 만들 수 있다. 네 번째 설계 유형인 '분산 아키텍처' PLC는 네트워크 전체에 분산된 여러 개의 PLC 또는 입출력 모듈을 사용하여 서로 통신하고 중앙 제어 장치와 통신하는 시스템이다.[24]

모듈형 PLC는 내장되는 입출력 수가 제한적이다. 일반적으로 기본 모델의 입출력 수가 부족하면 확장 기능을 사용한다.

랙형 PLC는 프로세서 모듈과 분리된 I/O 모듈인 경우가 많다. 경우에 따라 I/O 모듈이 다수의 랙으로 구성되기도 한다. 그 경우 수천 개의 (디지털 또는 아날로그) 입출력을 가진다. 프로세서와 I/O 모듈은 고속 시리얼 링크로 연결되므로, 거리가 멀어도 상관없으며 대규모 공장에서 배선 비용을 절감하는 데 도움이 된다.

더욱 대규모의 입출력 시스템이 필요한 경우, 프로세서 간을 P2P 통신 시스템으로 연결한다. 이를 통해 큰 시스템을 분할하여 제어하고 전체적으로 통신하여 협조 동작을 시킬 수 있다. 이 통신 링크는 인간-기계 인터페이스 장치(키패드나 PC)를 연결하는 데에도 사용 가능하다.

일반적으로 입력 수는 출력 수의 세 배가 필요하다고 알려져 있다. 센서 등의 고장에 대비하여 입력을 이중화하는 경우가 많기 때문이다.

7. 1. 단일 박스형(브릭형) PLC



단일 박스형(브릭형) PLC는 모든 장치와 인터페이스를 하나의 소형 케이스에 담은 소형 프로그래밍 가능 제어기이다.[23] 일반적으로 입출력 확장 모듈을 추가하여 기능을 확장할 수 있다. 모듈형 PLC는 기본 모델의 입출력 수가 제한적이지만, 확장을 통해 기능을 늘릴 수 있다.

7. 2. 모듈형 PLC

모듈형 PLC는 섀시(또는 '랙')에 전원 공급 장치, 프로세서, 입출력 모듈, 통신 인터페이스 등 다양한 기능의 모듈을 장착하여 구성하는 방식이다.[23] 이러한 모듈은 특정 애플리케이션에 맞게 유연하게 구성할 수 있다.[23] 여러 개의 랙을 단일 프로세서로 관리할 수 있으며 수천 개의 입출력을 가질 수 있다. 랙을 프로세서에서 분산시켜 대규모 플랜트의 배선 비용을 줄이기 위해 특수 고속 직렬 입출력 링크 또는 유사한 통신 방법을 사용한다.

랙형 PLC는 프로세서 모듈과 분리된 I/O 모듈인 경우가 많다. I/O 모듈이 다수의 랙으로 구성되기도 하며, 이 경우 수천 개의 디지털 또는 아날로그 입출력을 가진다. 프로세서와 I/O 모듈은 고속 시리얼 링크로 연결되므로, 거리가 멀어도 상관없으며 대규모 공장에서 배선 비용을 절감하는 데 도움이 된다.

더욱 대규모의 입출력 시스템이 필요한 경우, 프로세서 간을 P2P 통신 시스템으로 연결한다. 이를 통해 큰 시스템을 분할하여 제어하고 전체적으로 통신하여 협조 동작을 시킬 수 있다. 이 통신 링크는 인간-기계 인터페이스 장치(키패드나 PC)를 연결하는 데에도 사용 가능하다.

일반적으로 입력 수는 출력 수의 세 배가 필요하다고 알려져 있다. 센서 등의 고장에 대비하여 입력을 이중화하는 경우가 많기 때문이다.

7. 3. 스택형(랙 장착형) PLC

스택형(랙 장착형) PLC는 단일 박스형과 모듈형 PLC의 기능을 결합한 형태이다.[23] CPU, 전원 공급 장치, 입출력 인터페이스 등은 케이블을 통해 연결하고 서로 쌓을 수 있는 별도의 모듈로 제공된다.[24] 이러한 구조는 유연한 구성을 가능하게 하고 크기를 소형으로 만들 수 있다.

랙형 PLC는 프로세서 모듈과 분리된 I/O 모듈인 경우가 많다. I/O 모듈이 다수의 랙으로 구성되기도 하며, 수천 개의 디지털 또는 아날로그 입출력을 가질 수 있다. 프로세서와 I/O 모듈은 고속 시리얼 링크로 연결되어 거리가 멀어도 상관없으며, 대규모 공장에서 배선 비용을 절감하는 데 도움이 된다.

더욱 대규모의 입출력 시스템이 필요한 경우, 프로세서 간을 P2P 통신 시스템으로 연결한다. 이를 통해 큰 시스템을 분할하여 제어하고 전체적으로 통신하여 협조 동작을 시킬 수 있다. 이 통신 링크는 인간-기계 인터페이스 장치(키패드나 PC)를 연결하는 데에도 사용 가능하다.

일반적으로 입력 수는 출력 수의 세 배가 필요하다고 알려져 있다. 센서 등의 고장에 대비하여 입력을 이중화하는 경우가 많기 때문이다.

7. 4. 분산 아키텍처 PLC

PLC 시스템의 기계적 설계에는 네 가지 유형이 있는데, 그 중 분산 아키텍처 PLC는 네트워크 전체에 분산된 여러 개의 PLC 또는 입출력 모듈을 사용하여 서로 통신하고 중앙 제어 장치와 통신하는 시스템이다.[24]

랙형 PLC는 프로세서 모듈과 분리된 I/O 모듈인 경우가 많으며, I/O 모듈이 다수의 랙으로 구성되기도 한다. 이 경우 수천 개의 디지털 또는 아날로그 입출력을 가지며, 프로세서와 I/O 모듈은 고속 시리얼 링크로 연결되어 거리가 멀어도 상관없으므로 대규모 공장에서 배선 비용을 절감하는 데 도움이 된다.

더욱 대규모의 입출력 시스템이 필요한 경우, 프로세서 간을 P2P 통신 시스템으로 연결한다. 이를 통해 큰 시스템을 분할하여 제어하고 전체적으로 통신하여 협조 동작을 시킬 수 있다. 이 통신 링크는 인간-기계 인터페이스 장치(키패드나 PC)를 연결하는 데에도 사용 가능하다.

8. 신호의 종류

프로그래머블 로직 컨트롤러(PLC)는 디지털 신호와 아날로그 신호를 모두 처리할 수 있다.

== 디지털 신호 ==

이산(디지털) 신호는 'on' 또는 'off' 값(1 또는 0, 'true' 또는 'false')만 가질 수 있다.[25] 리미트 스위치와 광전 센서가 이산 신호를 제공하는 장치의 예시이다.[25]

프로그래머블 로직 컨트롤러(PLC)에서 다루는 신호는 디지털 신호이다. 디지털 신호는 스위치와 같이 단순히 ON과 OFF(1과 0, 참과 거짓)의 신호만을 나타낸다. 푸시 버튼, 리미트 스위치, 광 스위치 등이 디지털 신호를 발생시키는 장치이다. 디지털 신호는 전압이나 전류로 판단되며, 특정 임계값을 기준으로 ON 또는 OFF 여부가 결정된다. 예를 들어, 24VDC 입출력을 가진 PLC에서는 22VDC 이상을 ON으로, 2VDC 이하를 OFF로 판단한다. 전류 입력이 전압 입력보다 전기적 노이즈에 강하다.

예를 들어 탱크에 물을 채우는 장치를 생각해 보자. 디지털 신호만 사용하는 경우, PLC는 입력으로 탱크가 비었는지 여부를 나타내는 스위치와 가득 찼는지 여부를 나타내는 스위치를 갖는다. 또한, 출력으로는 탱크에 물을 채우는 밸브를 개폐하는 출력 신호 하나가 필요하다.

두 스위치 모두 OFF이거나 "탱크가 비었음" 스위치만 ON인 경우, PLC는 밸브를 열어 물을 채운다. "탱크가 가득 찼음" 스위치만 ON이 되면 밸브를 닫는다. 두 스위치 모두 ON이 되면 스위치 중 적어도 하나가 고장났다고 판단할 수 있다. 가득 찼는지 여부만으로 판단하지 않는 것은, 조금씩 물을 사용하는 상황에서 스위치가 하나만 있으면 밸브의 개폐가 빈번하게 발생하여 기계의 마모를 방지하기 위해서이다(이러한 상태를 플러터(flutter)라고 한다).

== 아날로그 신호 ==

아날로그 신호는 모니터링되는 변수와 유사한 전압 또는 전류를 사용하며, 측정 범위 내의 어떤 값도 가질 수 있다. 압력, 온도, 유량 및 무게는 종종 아날로그 신호로 표현된다.[25] 이러한 신호는 변환되어 0~32,767의 정수 값과 같이 다양한 정확도 범위를 가진 정수 값으로 해석된다.[25] PLC는 이 값을 가져와 프로세스의 원하는 단위로 변환하여 운영자 또는 프로그램이 읽을 수 있도록 한다.

아날로그 신호는 전압이나 전류로 표현되며, AD 컨버터(아날로그-디지털 변환기)를 통해 정수값으로 변환되어 PLC에 입력된다. 반대로 디지털 신호를 아날로그 신호로 변환하는 모듈을 DA 컨버터(디지털-아날로그 변환기)라고 한다.

아날로그 신호는 연속적인 값을 가지지만, 디지털 신호는 유한 개의 값만 사용할 수 있다. 아날로그 신호의 입력 범위와 정확도는 PLC의 신호선 할당에 따라 결정된다. 예를 들어, 0~24VDC 범위의 아날로그 신호가 있고, PLC에서 8개의 신호선이 할당되었다면, 0V는 디지털로 0, 24V는 디지털로 255가 된다.

실제 시스템에서는 디지털 신호와 아날로그 신호를 결합하여 사용할 수 있다. 예를 들어, 탱크의 수위를 조절하는 시스템에서 물이 넘치는 것을 방지하기 위해 디지털 신호를 사용하고, 수량을 일정하게 유지하기 위해 아날로그 신호를 사용할 수 있다.

8. 1. 디지털 신호

이산(디지털) 신호는 'on' 또는 'off' 값(1 또는 0, 'true' 또는 'false')만 가질 수 있다.[25] 리미트 스위치와 광전 센서가 이산 신호를 제공하는 장치의 예시이다.[25]

프로그래머블 로직 컨트롤러(PLC)에서 다루는 신호는 디지털 신호이다. 디지털 신호는 스위치와 같이 단순히 ON과 OFF(1과 0, 참과 거짓)의 신호만을 나타낸다. 푸시 버튼, 리미트 스위치, 광 스위치 등이 디지털 신호를 발생시키는 장치이다. 디지털 신호는 전압이나 전류로 판단되며, 특정 임계값을 기준으로 ON 또는 OFF 여부가 결정된다. 예를 들어, 24VDC 입출력을 가진 PLC에서는 22VDC 이상을 ON으로, 2VDC 이하를 OFF로 판단한다. 전류 입력이 전압 입력보다 전기적 노이즈에 강하다.

예를 들어 탱크에 물을 채우는 장치를 생각해 보자. 디지털 신호만 사용하는 경우, PLC는 입력으로 탱크가 비었는지 여부를 나타내는 스위치와 가득 찼는지 여부를 나타내는 스위치를 갖는다. 또한, 출력으로는 탱크에 물을 채우는 밸브를 개폐하는 출력 신호 하나가 필요하다.

두 스위치 모두 OFF이거나 "탱크가 비었음" 스위치만 ON인 경우, PLC는 밸브를 열어 물을 채운다. "탱크가 가득 찼음" 스위치만 ON이 되면 밸브를 닫는다. 두 스위치 모두 ON이 되면 스위치 중 적어도 하나가 고장났다고 판단할 수 있다. 가득 찼는지 여부만으로 판단하지 않는 것은, 조금씩 물을 사용하는 상황에서 스위치가 하나만 있으면 밸브의 개폐가 빈번하게 발생하여 기계의 마모를 방지하기 위해서이다(이러한 상태를 플러터(flutter)라고 한다).

8. 2. 아날로그 신호

아날로그 신호는 모니터링되는 변수와 유사한 전압 또는 전류를 사용하며, 측정 범위 내의 어떤 값도 가질 수 있다. 압력, 온도, 유량 및 무게는 종종 아날로그 신호로 표현된다.[25] 이러한 신호는 변환되어 0~32,767의 정수 값과 같이 다양한 정확도 범위를 가진 정수 값으로 해석된다.[25] PLC는 이 값을 가져와 프로세스의 원하는 단위로 변환하여 운영자 또는 프로그램이 읽을 수 있도록 한다.

아날로그 신호는 전압이나 전류로 표현되며, AD 컨버터(아날로그-디지털 변환기)를 통해 정수값으로 변환되어 PLC에 입력된다. 반대로 디지털 신호를 아날로그 신호로 변환하는 모듈을 DA 컨버터(디지털-아날로그 변환기)라고 한다.

아날로그 신호는 연속적인 값을 가지지만, 디지털 신호는 유한 개의 값만 사용할 수 있다. 아날로그 신호의 입력 범위와 정확도는 PLC의 신호선 할당에 따라 결정된다. 예를 들어, 0~24VDC 범위의 아날로그 신호가 있고, PLC에서 8개의 신호선이 할당되었다면, 0V는 디지털로 0, 24V는 디지털로 255가 된다.

실제 시스템에서는 디지털 신호와 아날로그 신호를 결합하여 사용할 수 있다. 예를 들어, 탱크의 수위를 조절하는 시스템에서 물이 넘치는 것을 방지하기 위해 디지털 신호를 사용하고, 수량을 일정하게 유지하기 위해 아날로그 신호를 사용할 수 있다.

9. 안전 PLC

안전 PLC는 기존 PLC 아키텍처에 안전 등급(Safety integrity level) 하드웨어 및 기능이 추가된 장치이거나 독립형 장치이다. 일반 PLC와 달리 안전 관련 명령어를 포함하며, 하드와이어링된 안전 릴레이(safety relay)를 대체할 수 있다. 안전 수준의 표준은 안전 무결성 레벨(Safety integrity level, SIL)이다.

안전 PLC는 로봇 셀에 대한 접근을 키 잠금 방식으로 제어하거나, 컨베이어 생산 라인의 비상 정지 버튼에 대한 종료 응답을 관리하는 데 사용될 수 있다.

10. 다른 제어 시스템과의 비교

제어반에 설치된 PLC


RTO를 위한 PLC가 있는 제어 센터


PLC는 다양한 자동화 작업에 적합하다. 이러한 작업은 일반적으로 제조업의 산업 공정으로, 자동화 시스템 개발 및 유지 관리 비용이 자동화 총비용에 비해 높고, 운영 수명 동안 시스템 변경이 예상되는 경우이다. PLC에는 산업용 파일럿 장치 및 제어 장치와 호환되는 입출력 장치가 포함되어 있어 전기 설계가 거의 필요하지 않으며, 설계 문제는 원하는 작동 순서를 표현하는 데 중점을 둔다. PLC 응용 프로그램은 일반적으로 고도로 맞춤화된 시스템이므로 특정 맞춤형 컨트롤러 설계 비용에 비해 패키지된 PLC의 비용이 낮다. 반면에 대량 생산 제품의 경우 맞춤형 제어 시스템이 경제적이다. 이는 "일반적인" 솔루션 대신 최적으로 선택할 수 있는 구성 요소의 비용이 낮고, 비반복적 엔지니어링 비용이 수천 또는 수백만 개의 장치에 분산되기 때문이다.

프로그래밍 가능한 컨트롤러는 동작, 위치 또는 토크 제어에 널리 사용된다. 일부 제조업체는 G 코드( CNC 머신이 포함됨)를 사용하여 기계 동작을 지시할 수 있도록 PLC와 통합될 수 있는 모션 컨트롤 유닛을 생산한다.

==== 마이크로컨트롤러 ====

마이크로컨트롤러 기반 설계는 수백 또는 수천 개의 장치가 생산될 경우, 전원 공급 장치, 입출력 하드웨어 설계 및 필요한 시험 및 인증에 드는 개발 비용을 많은 판매량에 분산할 수 있어 경제적이다.[43] 자동차 애플리케이션이 좋은 예인데, 매년 수백만 개의 장치가 생산되며 최종 사용자가 컨트롤러 프로그래밍을 변경하는 경우가 매우 드물기 때문이다.[43] 그러나 대중교통 버스와 같은 일부 특수 차량은 생산량이 적고 개발 비용이 경제적이지 않기 때문에 맞춤형 제어 장치 대신 프로그래머블 로직 컨트롤러를 사용하는 것이 경제적이다.[43]

==== 단일 보드 컴퓨터(SBC) ====

매우 복잡한 공정 제어나 고성능, 고정밀 제어가 필요한 경우에는 단일 보드 컴퓨터가 더 적합할 수 있다.[43] 항공기 제어, 화학 공정 제어 등 높은 개발 및 유지보수 비용을 감당할 수 있는 경우에 사용된다.[43]

==== 프로그래머블 로직 릴레이(PLR) ====

최근에는 프로그래머블 로직 릴레이(PLR) 또는 스마트 릴레이라고 불리는 소형 제품이 더욱 일반화되고 사용이 증가하고 있다. 이들은 PLC와 유사하며, I/O 포인트가 몇 개만 필요하고 저렴한 비용이 요구되는 경공업 분야에서 사용된다. 이러한 소형 장치는 일반적으로 여러 제조업체에서 공통적인 물리적 크기와 모양으로 제작되며, 대형 PLC 제조업체에서 자사의 저가형 제품군을 채우기 위해 브랜드화한다. 이러한 장치의 대부분은 8~12개의 디스크리트 입력, 4~8개의 디스크리트 출력, 최대 2개의 아날로그 입력을 가지고 있다. 대부분의 이러한 장치에는 간략화된 래더 로직과 I/O 포인트의 상태를 보여주는 소형 우표 크기의 LCD 화면이 포함되어 있으며, 일반적으로 이러한 화면에는 4방향 로커 푸시 버튼과 4개의 별도 푸시 버튼이 함께 제공되어 로직을 탐색하고 편집하는 데 사용된다. 대부분은 PC에 연결하기 위한 RS-232 또는 RS-485 포트를 가지고 있어 프로그래머가 이러한 용도로 소형 LCD와 푸시 버튼 세트 대신 사용자 친화적인 소프트웨어를 사용하여 프로그래밍할 수 있다. 일반적으로 모듈식이고 확장 가능한 일반 PLC와 달리 PLR은 일반적으로 모듈식이거나 확장 가능하지 않지만, 비용은 PLC보다 훨씬 저렴할 수 있으며 여전히 견고한 설계와 로직의 결정적 실행을 제공한다.

10. 1. 마이크로컨트롤러

마이크로컨트롤러 기반 설계는 수백 또는 수천 개의 장치가 생산될 경우, 전원 공급 장치, 입출력 하드웨어 설계 및 필요한 시험 및 인증에 드는 개발 비용을 많은 판매량에 분산할 수 있어 경제적이다.[43] 자동차 애플리케이션이 좋은 예인데, 매년 수백만 개의 장치가 생산되며 최종 사용자가 컨트롤러 프로그래밍을 변경하는 경우가 매우 드물기 때문이다.[43] 그러나 대중교통 버스와 같은 일부 특수 차량은 생산량이 적고 개발 비용이 경제적이지 않기 때문에 맞춤형 제어 장치 대신 프로그래머블 로직 컨트롤러를 사용하는 것이 경제적이다.[43]

10. 2. 단일 보드 컴퓨터(SBC)

매우 복잡한 공정 제어나 고성능, 고정밀 제어가 필요한 경우에는 단일 보드 컴퓨터가 더 적합할 수 있다.[43] 항공기 제어, 화학 공정 제어 등 높은 개발 및 유지보수 비용을 감당할 수 있는 경우에 사용된다.[43]

10. 3. 프로그래머블 로직 릴레이(PLR)

최근에는 프로그래머블 로직 릴레이(PLR) 또는 스마트 릴레이라고 불리는 소형 제품이 더욱 일반화되고 사용이 증가하고 있다. 이들은 PLC와 유사하며, I/O 포인트가 몇 개만 필요하고 저렴한 비용이 요구되는 경공업 분야에서 사용된다. 이러한 소형 장치는 일반적으로 여러 제조업체에서 공통적인 물리적 크기와 모양으로 제작되며, 대형 PLC 제조업체에서 자사의 저가형 제품군을 채우기 위해 브랜드화한다. 이러한 장치의 대부분은 8~12개의 디스크리트 입력, 4~8개의 디스크리트 출력, 최대 2개의 아날로그 입력을 가지고 있다. 대부분의 이러한 장치에는 간략화된 래더 로직과 I/O 포인트의 상태를 보여주는 소형 우표 크기의 LCD 화면이 포함되어 있으며, 일반적으로 이러한 화면에는 4방향 로커 푸시 버튼과 4개의 별도 푸시 버튼이 함께 제공되어 로직을 탐색하고 편집하는 데 사용된다. 대부분은 PC에 연결하기 위한 RS-232 또는 RS-485 포트를 가지고 있어 프로그래머가 이러한 용도로 소형 LCD와 푸시 버튼 세트 대신 사용자 친화적인 소프트웨어를 사용하여 프로그래밍할 수 있다. 일반적으로 모듈식이고 확장 가능한 일반 PLC와 달리 PLR은 일반적으로 모듈식이거나 확장 가능하지 않지만, 비용은 PLC보다 훨씬 저렴할 수 있으며 여전히 견고한 설계와 로직의 결정적 실행을 제공한다.

10. 4. 원격 단말 장치(RTU)

11. 보안

대부분의 프로그래머블 컨트롤러(PLC)는 물리적 키와 암호를 필요로 하지만, 엄격한 접근 제어 및 버전 관리 시스템이 없어 프로그램이 무단으로 변경되어도 알아차리기 어렵다.[38]

스턱스넷 컴퓨터 웜이 발견되기 전인 2010년 6월까지 PLC의 보안은 거의 주목받지 못했다. 최신 프로그래머블 컨트롤러는 실시간 운영 체제를 포함하고 있으며, 마이크로소프트 윈도우와 같은 데스크톱 운영 체제와 유사하게 악용될 수 있다. PLC는 통신하는 컴퓨터를 제어하여 공격받을 수도 있다.[39] PLC 환경에서 네트워킹이 일반화되면서 이전에는 분리되었던 공장 바닥 네트워크와 사무실 네트워크를 연결하고 있어 이러한 우려는 커지고 있다.[40]

2021년 2월, 록웰 오토메이션은 Logix 컨트롤러 제품군에 영향을 미치는 심각한 취약성을 공개했다. PLC와 워크스테이션 간의 통신을 검증하는 데 사용되는 암호키를 프로그래밍 소프트웨어(Studio 5000 Logix Designer)에서 추출하여 연결된 컨트롤러의 프로그램 코드와 구성을 원격으로 변경할 수 있었다. 이 취약성은 CVSS 취약성 점수 체계에서 10점 만점에 10점을 받았다. 이 취약성을 완화하기 위한 조치는 방어 심층화를 통해 영향받는 장치에 대한 네트워크 접근을 제한하는 것이었다.[41][42]

참조

[1] 서적 Programmable Logic Controller (PLC) Tutorial, Siemens Simatic S7-1200 Publicis MCD Werbeagentur GmbH 2018
[2] Harvnb
[3] 웹사이트 What Is a PLC? https://www.mroelect[...] MRO Electric 2020-03-20
[4] 웹사이트 PLC Programming Basics Part I https://www.controls[...] 2019-07-23
[5] Harvnb
[6] Harvnb
[7] Harvnb
[8] Harvnb
[9] Harvnb
[10] 웹사이트 The Father of Invention: Dick Morley Looks Back on the 40th Anniversary of the PLC https://www.automati[...] 2009-06-12
[11] 웹사이트 Leaders of the pack https://www.isa.org/[...] 2003-08-01
[12] 웹사이트 Mobus Networking Guide: Introduction https://development.[...] 2022-10-27
[13] 서적 Industrial Applications of Programmable Logic Controllers and SCADA Anchor Academic Publishing 2016
[14] 웹사이트 A-B PLC Inventor, Dr. Odo Struger, Dies https://www.controle[...] 1999-02-01
[15] 뉴스 O. Struger, 67, A Pioneer In Automation https://query.nytime[...] 1998-12-27
[16] 서적 Programmable logic controller was invented by the Austrian-born American engineer Odo J. Struger in 1958–60 at the Allen-Bradley company in Milwaukee, WI, USA. A programmable logic controller, or PLC, is a simple electronic device that allows precise numerical control of machinery. It is widely used to control everything from washing machines to roller coaster to automated manufacturing equipment.
[17] 웹사이트 A Short History of Automation Growth http://www.jimpinto.[...] 2008-06-20
[18] 웹사이트 State Machine Programming in Ladder Logic https://control.com/[...] 2024-08-18
[19] 웹사이트 Wrapping Your Head around Ladder Logic https://www.dosupply[...] 2018-08-27
[20] 웹사이트 The inside of the core memory module of a PLC2, if anyone's interested. https://www.reddit.c[...] 2023-11-06
[21] Harvnb
[22] Harvnb
[23] Harvnb
[24] 웹사이트 History, Basic Structure & Classification of Programmable Logic Controller (PLC) https://www.plc-hub.[...] 2023-08-24
[25] Harvnb
[26] Harvnb
[27] 간행물 Grafcet, A Functional Chart for Sequential Processes 1984
[28] 웹사이트 Status IEC 61131-3 Standard https://plcopen.org/[...] 2018-07-19
[29] 웹사이트 Programmable logic controller for automation systems https://www.isisvare[...] 2024-04-08
[30] 웹사이트 A mini view of PLC https://www.research[...] 2020-09-01
[31] Harvnb
[32] 서적 Advances in Computer Science, Environment, Ecoinformatics, and Education, Part III: International Conference, CSEE 2011, Wuhan, China, August 21-22, 2011. Proceedings https://books.google[...] Springer Science & Business Media 2011-08-09
[33] 간행물 Enhancing PLC Performance with Vision Systems 1989
[34] Harvnb
[35] 간행물 Real-Time Control and Communications 1989
[36] 논문 Designing Programmable Controller Application Programs Using More than One Designer 1985
[37] 서적 Electrical Engineer's Reference book, 16th edition 2002
[38] 서적 Industrial Control Handbook 1998
[39] 웹사이트 PLC Security Risk: Controller Operating Systems - Tofino Industrial Security Solution http://www.tofinosec[...] 2011-05-01
[40] 서적 2015
[41] 웹사이트 Hard-coded key vulnerability in Logix PLCs has severity score of 10 out of 10 https://arstechnica.[...] 2021-03-07
[42] 웹사이트 Max level vulnerability found in Logix PLCs https://www.itworldc[...] 2021-03-07
[43] 서적 Process/Industrial Instruments and Controls Handbook McGraw-Hill 1999
[44] 논문 Enhancing PLC Performance with Vision Systems 1989
[45] 논문 Real-Time Control and Communications 1989
[46] 논문 Designing Programable Controller Application Programs Using More than One Designer 1985
[47] 서적 Programmable Logic Controllers, Fifth Edition Newnes 2009
[48] 논문 Grafcet, A Functional Chart for Sequential Processes 1984
[49] 서적 Industrial Control Handbook Industrial Press Inc. 1999
[50] 서적 Electrical Engineer's Reference book, 16th edition Newnes 2003
[51] 간행물 The father of invention: Dick Morley looks back on the 40th anniversary of the PLC http://www.automatio[...] 2008-09-12
[52] 웹사이트 PLCの未来:進化する産業自動化の中核技術 https://xn--fa-yi6cm[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com